#ifndef NODE_H
#define NODE_H

namespace nav
{

class Node
{
public:
    /** Default constructor */
    Node(int posX, int posY, int weight, bool Explored);
    /** Default destructor */
    virtual ~Node();
    /** Access posX
     * \return The current value of posX
     */
    Node(const Node& other);

    int posX; //!< Member variable "posX"
    int posY; //!< Member variable "posY"
    int weight; //!< Member variable "weight"
    int tweight; //!< temporary Member variable "tweight" used during the calculation
    bool explored; //!< Member variable "explored"
    bool infoPath;
    int  accumulatedPathCosts;

    Node* predecessorPtr;

    void PlotNodeData();
    void setPredecessor(Node * PredPtr){this->predecessorPtr= PredPtr;};
    Node* getPredecessor(){return this->predecessorPtr;}

    bool  Equals(  Node *other);
    bool operator == (const Node *other)
    {
        //weight beeing the least distinctive info is checked for last as learned
        return (this->posX==other->posX && this->posY== other->posY &&  this->weight == other->weight);
    }

protected:
private:

};
}
#endif // NODE_H

